'''
    这是一个工具函数模块，所有工具性的函数都定义在这个模块里面
'''

func_list = []

def main_func(doc):
    '''
        功能函数注册
    '''
    def tmp_f(f):
        f.doc = doc
        func_list.append(f)
    return tmp_f


def get_func_index():
    '''
        这个函数的作用是为了安全接收用户输入的一个数字
    '''
    while True:
        func = input()
        try:
            func = int(func)
            return func
        except ValueError:
            print('输入不合法, 请重新输入: ', end='')

def get_func(idx):
    '''
        这个函数是为了安全获取功能列表里的对应功能
        如果找到了则返回 该函数的指针
        如果未找到则返回 None
    '''
    try:
        return func_list[idx]
    except IndexError:
        return None


